package com.csx.micrometer.discovery.adapter;

import com.csx.micrometer.discovery.model.InstanceDetailPojo;
import com.csx.micrometer.discovery.model.NamespaceDetail;
import com.csx.micrometer.discovery.model.ServicePojo;

import java.util.List;

/**
 * @author cuisongxu
 * @date 2022/12/5 17:36
 */
public interface RegistryCenterService {

    /**
     * 获取所有命名空间
     * @return 命名空间详情列表
     */
    List<NamespaceDetail> getNamespaces();

    /**
     * 获取所有服务
     * @param namespaceDetail 命名空间详情
     * @return 服务列表
     */
    List<ServicePojo> getServices(NamespaceDetail namespaceDetail);

    /**
     * 获取所有实例
     * @param namespace 命名空间
     * @param servicePojo 服务
     * @return 实例详情列表
     */
    List<InstanceDetailPojo> getInstances(String namespace, ServicePojo servicePojo);
}
